package com.web.kdl.service.site;

import com.web.kdl.common.result.CommonResult;
import com.web.kdl.entity.matrix.Matrix;
import com.web.kdl.entity.site.Site;
import com.web.kdl.pojo.Vo.EnergyDataVo;
import com.web.kdl.pojo.Vo.SysEleVo;
import com.web.kdl.pojo.Vo.SysWorkStatusVo;
import com.web.kdl.pojo.Vo.SystemBaseVo;
import com.web.kdl.pojo.Vo.site.SiteBaseVo;
import com.web.kdl.pojo.Vo.site.SiteMonVo;
import com.web.kdl.pojo.form.SiteAddForm;
import com.web.kdl.pojo.form.SiteUpdateForm;
import com.web.kdl.service.createTable.TableDataType;
import com.web.kdl.service.createTable.TableType;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @Author： shulibin
 * @Date： 2025/7/25 8:23
 * @Describe：
 */
public interface SiteService {
    int addSite(@Valid SiteAddForm form);

    int deleteByIds(List<String> siteIds);

    Site getSiteById(int siteId);

    List<Site> getAllSize();

    Boolean updateSite(SiteUpdateForm form);

    SystemBaseVo getSystemInfo();

    List<EnergyDataVo> getSystemEleInfo();

    List<SiteMonVo> getSystemEvent();

    CommonResult deleteById(@NotNull String id);

    /**
     * 通过站点名称 获取 站点下所有阵列
     * @param siteName
     * @return
     */
    List<Matrix> getMatrixBySiteName(String siteName);

    /**
     * 获取 构建 站点下所有阵列 的所有表名 集合
     */
    List<String> getAllSiteName(TableType type);

    SysWorkStatusVo getSystemWorkStatus();
    //获取数据表 day minute temp
    List<String> getAllSiteDataName(TableDataType type);
}
